#pragma once
#include <Rz/IObject.h>
#include <Rz/Graphics/Render/ITexture2D.h>
#include <Rz/Collections/List.h>

namespace Rz { namespace Graphics { namespace Render {

enum class DepthFormat
{
	None,
	Depth16,
	Depth24,
	Depth24Stencil8
};

enum class RenderTargetUsage
{
	DiscardContents,
	PreserveContents,
	PlatformContents
};

class IRenderTarget2D :
	virtual public IObject,
	virtual public ITexture2D
{
	public:
		RZ_RTTI_INTERFACE(Rz::Graphics::Render, IRenderTarget2D);
		RZ_RTTI_IMPLEMENTS(IObject, ITexture2D);
		RZ_RTTI_END;

// 		virtual void Clear(const Math::Vector4& color)
// 		{
// 			this->GetRenderDevice()->SetRenderTarget(this);
// 			this->GetRenderDevice()->Clear(color);
// 		}
};

} } }
